home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Fixation 1.3 / game.h < prev    next >
Text File  |  1996-04-11  |  2KB  |  90 lines

  1. // game.h
  2.  
  3. typedef enum {
  4.     BeginningOfGame, MachinePlaysWhite, MachinePlaysBlack, TwoMachinesPlay,
  5.     EditGame, PlayFromGameFile, EndOfGame, EditPosition,
  6.     IcsIdle, IcsPlayingWhite, IcsPlayingBlack, IcsObserving,
  7.     IcsExamining
  8. } GameMode;
  9.   
  10. typedef enum {
  11.     empty = 0, WhitePawn, WhiteKnight, WhiteBishop, WhiteRook, WhiteQueen, WhiteKing,
  12.     BlackPawn, BlackKnight, BlackBishop, BlackRook, BlackQueen, BlackKing
  13. };
  14.  
  15. #define RELATION_OBSERVING_PLAYED    0
  16. #define RELATION_OBSERVING_STATIC   -2   /* examined, oldmoves, or smoves */
  17. #define RELATION_PLAYING_MYMOVE      1
  18. #define RELATION_PLAYING_NOTMYMOVE  -1
  19. #define RELATION_EXAMINING           2
  20. #define RELATION_ISOLATED_BOARD     -3
  21.  
  22. typedef short Board[8][8];
  23.  
  24. #define kWhite 0
  25. #define kBlack 1
  26.  
  27. typedef short Cmove[2][2];
  28.  
  29. enum {
  30.     ctlForward = 0,
  31.     ctlBack,
  32.     ctlStart,
  33.     ctlEnd,
  34.     ctlRevert,
  35.     kNumGameControls
  36. };
  37.  
  38.     // this is all the info for a particular game
  39. typedef struct Game {
  40.     Game *next, *prev;
  41.     
  42.     CWindowPtr wind;
  43.     ControlHandle ctl[kNumGameControls];
  44.     Rect boardRect;
  45.     short sqsize;
  46.     
  47.     Boolean jexiste;
  48.     short relation;        // our relation to the game -- see constants above
  49.     char endReason[64];
  50.     Board board;
  51.     short origNumber, number;        // official game number according to server
  52.     char name[2][128];
  53.     short turn;
  54.     Boolean bug, footer, setup;
  55.     short reserves[2][5];
  56.     
  57.     long ptime[2];
  58.     ulong lTime;
  59.     long gameMins, gameInc;
  60.     char elapsed[16];
  61.     long thinking;
  62.     
  63.     short strength[2];
  64.     Boolean flip;
  65.     Cmove lastMove;
  66.     short officialMove;
  67.     Point tempDest;
  68.     
  69.     char lmove[2][16];
  70.     
  71.     Boolean isFirst, isSecond;
  72.     
  73.     short p1OffsetY, bOffsetY, p2OffsetY;
  74. } Game;
  75.     
  76. extern Game *gGames;
  77.  
  78. void InitGame(void);
  79. void DrawGameWindow(void);
  80. void GameIdle(void);
  81. void StopPlaying(void);
  82. void StartPlaying(void);
  83. Game * NewGame(char *p1, char *p2, short gameNum, Boolean flip);
  84. void DisposeGame(Game *game);
  85. void CloseGameWindow(WindowPtr win);
  86. void DrawGameWindow(WindowPtr win);
  87. void DrawGame(Game *game);
  88. void DrawGameBoard(Game *game);
  89. void DrawGameStats(Game *game);
  90. void HandleGameClic